package com.WhosOn_Server;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;

public class WhosOn_Server {
	
	
	 public static void main( String args[] ) {
	        ServerSocket s = (ServerSocket)null;
	        Socket s1;
	        String cadena = "WhosOn";
	        int longCad;
	        OutputStream s1out;
	        InputStream sIn = null;
	        Vector<String> nombres = new Vector<String>();
	        try {
	            s = new ServerSocket( 4321,300 );
	        } catch( IOException e ) {
	            System.out.println( e );
	            }
	        System.out.println("socket creado");
	        while( true ) {
	            try {
	            	//recibir nombre
	            	String str="";
	            	int c;
	            	System.out.println("esperando conexion");
	                s1 = s.accept();
	                System.out.println("conexion aceptada");
	                sIn = s1.getInputStream();
	                System.out.println("InputStream obtenido");
	                while( ( c = sIn.read() ) != -1 )
	                    str = str + (char)c;
	                System.out.println("Nombre recibido");
	                boolean repetido = false;
	                if(str.equals("reset")) nombres.clear();
	                else {
	                	for(int i = 0;  i < nombres.size(); ++i) if(nombres.get(i).equals(str)) repetido = true;
		                if(!repetido) {
		                	nombres.add(str);
			                System.out.println("Añadido " + str);
		                }
	                }
	                //enviar lista
	                s1out = s1.getOutputStream();
	                String cadena2 = cadena;
	                for(int i = 0; i < nombres.size(); ++i)
	                	cadena2 = cadena2 + ";" + nombres.get(i);
	                longCad = cadena2.length();
	                for( int i=0; i < longCad; i++ )
	                    s1out.write( (int)cadena2.charAt( i ) );
	                s1.close();
	            } catch( IOException e ) {
	                System.out.println( e );
	                }
	            }
	        }

}
